約 4,411,558 件
https://w.atwiki.jp/sicpstudygroup/pages/90.html
SICP naga Exercise 5.7 (define expt-a (make-machine (continue n b val) (list (list = =) (list - -) (list * *)) (machine (assign continue (label expt-done)) expt-loop (test (op =) (reg n) (const 0)) (branch (label immediate-answer)) (save continue) (assign continue (label afterexpt)) (assign n (op -) (reg n) (const 1)) (goto (label expt-loop)) afterexpt (restore continue) (assign val (op *) (reg b) (reg val)) (goto (reg continue)) immediate-answer (assign val (const 1)) (goto (reg continue)) expt-done) )) (set-register-contents! expt-a b 2) (set-register-contents! expt-a n 5) (start expt-a) ;;gosh (get-register-contents expt-a val) ;;32 (define expt-b (make-machine (counter product n b) (list (list = =) (list - -) (list * *)) (machine (assign counter (reg n)) (assign product (const 1)) expt-loop (test (op =) (reg counter) (const 0)) (branch (label expt-done)) (assign counter (op -) (reg counter) (const 1)) (assign product (op *) (reg b) (reg product)) (goto (label expt-loop)) expt-done) )) (set-register-contents! expt-b b 2) (set-register-contents! expt-b n 6) (start expt-b) ;;gosh (get-register-contents expt-b product) ;;64 Exercise 5.8 (define ex5.8 (make-machine (a) (list ()) (start (goto (label here)) here (assign a (const 3)) (goto (label there)) here (assign a (const 4)) (goto (label there)) there) )) (start ex5.8) ;;gosh (get-register-contents ex5.8 a) ;;3 ;;; extract-labels で同じラベルがあるかどうかチェックする。 (define (extract-labels text receive) (if (null? text) (receive () ()) (extract-labels (cdr text) (lambda (insts labels) (let ((next-inst (car text))) (if (symbol? next-inst) (let ((p (assoc next-inst labels))) (if p (error "Duplicate label -- ASSEMBLE" next-inst) (receive insts (cons (make-label-entry next-inst insts) labels)))) (receive (cons (make-instruction next-inst) insts) labels))))))) ;;gosh (define ex5.8 ;; (make-machine ;; (a) ;; (list ()) ;; (start ;; (goto (label here)) ;; here ;; (assign a (const 3)) ;; (goto (label there)) ;; here ;; (assign a (const 4)) ;; (goto (label there)) ;; there) ;; )) ;;*** ERROR Duplicate label -- ASSEMBLE here Exercise 5.9 ;;; make-operation-exp で operand が label の時はエラーとする。 (define (make-operation-exp exp machine labels operation) (let ((op (lookup-prim (operation-exp-op exp) operation)) (aprocs (map (lambda (e) (if (label-exp? e) (error "Operations can be used only with registers and constants -- ASSEMBLE" exp) (make-primitive-exp e machine labels))) (operation-exp-operands exp)))) (lambda () (apply op (map (lambda (p) (p)) aprocs))))) (define ex5.9 (make-machine (a) (list (list + +)) (l (assign a (op +) (label l) (const 1)) ) )) ;;gosh (load "ex5_9") ;;*** ERROR Operations can be used only with registers and constants -- ASSEMBLE ((op +) (label l) (const 1)) Exercise 5.10 ;;; syntax って assembler の変更で対応できる範囲という事でいいのかな? ;;; という事で、 ;;; label にオフセット(省略可)を指定できるように syntax を変更する。 ;;; (label label-name ) - (label label-name offset ) ;;; ;;; offset が + の時は、label-name から求めた inst を進める。 ;;; - の時は2つのポインタを使い、controller-text の最初に ;;; 強制的に埋め込んだ label位置に ポインタを設定し、一方を ;;; -offset だけ進めた後、label-name から 求めた inst に先に ;;; 進めたポインタがたどり着くまで2つのポインタを進める。 (define (assemble controller-text machine) (set! contoller-text (cons **main** controller-text)) (extract-labels controller-text (lambda (insts labels) (update-insts! insts labels machine) insts))) (define (label-exp-label exp) (cdr exp)) ;label-exp-lable-expb (define (label-name label-expb) (car label-expb)) (define (label-offset label-expb) (cond ((null? (cdr label-expb)) 0) ((number? (cadr label-expb)) (cadr label-expb)) (else (error "Offset must be number -- LABEL-EXPB" label-expb)))) (define (lookup-label labels label-expb) (define (forward insts n) (if (= n 0) insts (if (null? (cdr insts)) (error "Out of range -- ASSEMLBE" label-expb) (forward (cdr insts) (- n 1))))) (define (forward2 insts lead target) (if (eq? lead target) insts (if (null? (cdr lead)) (error "Out of range -- ASSEMBLE" label-expb) (forward2 (cdr insts) (cdr lead) target)))) (let ((name (label-name label-expb)) (offset (label-offset label-expb)) (insts ())) (let ((val (assoc name labels))) (if val (set! insts (cdr val)) (error "Undefined label -- ASSEMBLE" name))) (if ( = offset 0) (forward insts offset) (let ((ip (cdr (assoc **main** labels)))) (forward2 ip (forward ip (* offset -1)) insts))))) ;; test program (define ex5.10 (make-machine (a continue) (list (list + +) (list display display) (list newline newline)) (ex5.10 (assign a (const 0)) (assign continue (label t1e)) (goto (label s)) t1e (assign a (const 0)) (assign continue (label t2e)) (goto (label s -1)) t2e (assign a (const 0)) (assign continue (label t3e)) (goto (label s 1)) t3e (goto (label ex5.10.done)) ; (assign a (op +) (reg a) (const 1)) s (assign a (op +) (reg a) (const 1)) (assign a (op +) (reg a) (const 1)) (perform (op display) (reg a)) (perform (op newline)) (goto (reg continue)) ; ex5.10.done) )) ;;gosh (start ex5.10) ;;2 ;;3 ;;1 ;;done Exercise 5.11 ;;; a ;;; afterfib-n-2 の直後の ;;; (assign n (reg val)) (restore val) ;;; を ;;; (restore n) ;;; としても同じ結果を得ることができる。 ;;; b と c ;;; stack の方法を stack-mode に保持する。 ;;; a オリジナル b レジスタチェック c レジスタ毎のスタック (define stack-mode a) ;;; register にスタックを設ける。 (define (make-register name) (let ((contents *unassigned*) (stack (make-stack))) (define (dispatch message) (cond ((eq? message get) contents) ((eq? message set) (lambda (value) (set! contents value))) ((eq? message pop) (stack pop)) ((eq? message push) (stack push)) ((eq? message initialize) (stack initialize)) (else error "Unknown request -- REGISTER" message))) dispatch)) ;;; make-new-machine のオペレーション定義 initialize-stack を変更 (list initialize-stack (cond ((eq? stack-mode c) (lambda () (for-each (lambda (regpair) ((cdr regpair) initialize)) register-table))) (else (lambda () (stack initialize))))) ;;; make-save の変更 (define (make-save inst machine stack pc labels) (let ((reg (get-register machine (stack-inst-reg-name inst)))) (lambda () (cond ((eq? stack-mode a) (push stack (get-contents reg))) ((eq? stack-mode b) (push stack (get-contents reg)) (push stack (stack-inst-reg-name inst))) ((eq? stack-mode c) (push reg (get-contents reg)))) (advance-pc pc)))) ;;; make-retore の変更 (define (make-restore inst machine stack pc labels) (let ((reg (get-register machine (stack-inst-reg-name inst)))) (lambda () (cond ((eq? stack-mode a) (set-contents! reg (pop stack))) ((eq? stack-mode b) (let ((reg-name (pop stack))) (if (equal? reg-name (stack-inst-reg-name inst)) (set-contents! reg (pop stack)) (error "Pop-value was saved from " reg-name inst)))) ((eq? stack-mode c) (set-contents! reg (pop reg)))) (advance-pc pc)))) ;;; b の test program (define ex5.11.b (make-machine (a b) (list (list display display) (list newline newline)) (ex5.11.b (assign a (const 11)) (save a) (restore a) (perform (op display) (reg a)) (perform (op newline)) (save a) (restore b) (perform (op display) (reg b)) (perform (op newline)) ) )) ;;gosh (start ex5.11.b) ;;11 ;;*** ERROR Pop-value was saved from a (restore b) ;;Stack Trace ;;; c の test program (define ex5.11.c (make-machine (a b) (list (list display display) (list newline newline)) (ex5.11.c (assign a (const 1)) (assign b (const 2)) (save a) (save b) (assign a (const 10)) (assign b (const 10)) (restore a) (restore b) (perform (op display) (reg a)) (perform (op newline)) (perform (op display) (reg b)) (perform (op newline)) ) )) ;;gosh (start ex5.11.c) ;;1 ;;2 Exercise 5.12 ;;; make-new-machine の dispatch に以下を追加 ((eq? message insts) the-instruction-sequence) ;;; コマンド追加 (define (static-analyze machine) (s-analyze (machine insts))) ;;; insts から重複のない instuction text listを得る。 (define (unique insts) (let ((uinstsl ())) (for-each (lambda (inst) (if (not (member (instruction-text inst) uinstsl)) (set! uinstsl (cons (instruction-text inst) uinstsl)))) insts) uinstsl)) (define (analyze-report-inst title keys) (display title) (newline) (for-each (lambda (key) (display " ") (display (car key)) (newline) (for-each (lambda (text) (display " ") (display text) (newline)) (rsort (cdr key)))) (rsort keys))) (define (analyze-report-reg title regs) (display title) (newline) (for-each (lambda (reg) (display " ") (display reg)) (rsort regs)) (newline)) ;;; リストをソートする。 (define (rsort items) (sort items (lambda (x y) (= (comp x y) -1)))) (define (comp x y) (cond ((and (null? x) (null? y)) 0) ((null? x) -1) ((null? y) 1) ((and (number? x) (number? y)) (compare x y)) ((number? x) -1) ((number? y) 1) ((and (string? x) (string? y)) (compare x y)) ((string? x) -1) ((string? y) 1) ((and (symbol? x) (symbol? y)) (compare (symbol- string x) (symbol- string y))) ((symbol? x) -1) ((symbol? y) 1) ((and (pair? x) (pair? y)) (let ((f (comp (car x) (car y)))) (if (= f 0) (comp (cdr x) (cdr y)) f))) (else 1) )) (define (s-analyze insts) (let ((analyze-1 ()) ; instructions (analyze-2 ()) ; registers refed by goto (analyze-3 ()) ; registers saved or restored (analyze-4 ())) ; assign instructions (for-each (lambda (text) (let ((insttype (assoc (car text) analyze-1))) (if (not insttype) (begin (set! insttype (cons (car text) ())) (set! analyze-1 (cons insttype analyze-1)))) (set-cdr! insttype (cons text (cdr insttype)))) (if (and (eq? (car text) goto) (register-exp? (goto-dest text))) (set! analyze-2 (cons (register-exp-reg (goto-dest text)) analyze-2))) (if (or (eq? (car text) save) (eq? (car text) restore)) (let ((reg (memq (stack-inst-reg-name text) analyze-3))) (if (not reg) (set! analyze-3 (cons (stack-inst-reg-name text) analyze-3))))) (if (eq? (car text) assign) (let ((reg (assoc (assign-reg-name text) analyze-4))) (if (not reg) (begin (set! reg (cons (assign-reg-name text) ())) (set! analyze-4 (cons reg analyze-4)))) (set-cdr! reg (cons text (cdr reg))))) ) (unique insts)) (analyze-report-inst ";;Instructions" analyze-1) (analyze-report-reg ";;Regs-refed-by-goto" analyze-2) (analyze-report-reg ";;Regs-refed-by-save-restore" analyze-3) (analyze-report-inst ";;Regs-source" analyze-4) )) ;; test program (define fib (make-machine (continue n val) (list (list ) (list - -) (list + +)) (machine (assign continue (label fib-done)) fib-loop (test (op ) (reg n) (const 2)) (branch (label immediate-answer)) ;; set up to compute Fib(n - 1) (save continue) (assign continue (label afterfib-n-1)) (save n) ; save old value of n (assign n (op -) (reg n) (const 1)); clobber n to n - 1 (goto (label fib-loop)) ; perform recursive call afterfib-n-1 ; upon return, val contains Fib(n - 1) (restore n) (restore continue) ;; set up to compute Fib(n - 2) (assign n (op -) (reg n) (const 2)) (save continue) (assign continue (label afterfib-n-2)) (save val) ; save Fib(n - 1) (goto (label fib-loop)) afterfib-n-2 ; upon return, val contains Fib(n - 2) (assign n (reg val)) ; n now contains Fib(n - 2) (restore val) ; val now contains Fib(n - 1) (restore continue) (assign val ; Fib(n - 1) + Fib(n - 2) (op +) (reg val) (reg n)) (goto (reg continue)) ; return to caller, answer is in val immediate-answer (assign val (reg n)) ; base case Fib(n) = n (goto (reg continue)) fib-done) )) ;;gosh (static-analyze fib) ;;;;Instructions ;; assign ;; (assign continue (label afterfib-n-1)) ;; (assign continue (label afterfib-n-2)) ;; (assign continue (label fib-done)) ;; (assign n (op -) (reg n) (const 1)) ;; (assign n (op -) (reg n) (const 2)) ;; (assign n (reg val)) ;; (assign val (op +) (reg val) (reg n)) ;; (assign val (reg n)) ;; branch ;; (branch (label immediate-answer)) ;; goto ;; (goto (label fib-loop)) ;; (goto (reg continue)) ;; restore ;; (restore continue) ;; (restore n) ;; (restore val) ;; save ;; (save continue) ;; (save n) ;; (save val) ;; test ;; (test (op ) (reg n) (const 2)) ;;;;Regs-refed-by-goto ;; continue ;;;;Regs-refed-by-save-restore ;; continue n val ;;;;Regs-source ;; continue ;; (assign continue (label afterfib-n-1)) ;; (assign continue (label afterfib-n-2)) ;; (assign continue (label fib-done)) ;; n ;; (assign n (op -) (reg n) (const 1)) ;; (assign n (op -) (reg n) (const 2)) ;; (assign n (reg val)) ;; val ;; (assign val (op +) (reg val) (reg n)) ;; (assign val (reg n)) Exercise 5.13 ;;; make-new-machine の内部定義手続き lookup-register を register ;;; が見つからなかったら作るよう変更する。 (define (lookup-register name) (let ((val (assoc name register-table))) (if val (cadr val) (begin (allocate-register name) (lookup-register name))))) ;; test program (define expt-b (make-machine () (list (list = =) (list - -) (list * *)) (machine (assign counter (reg n)) (assign product (const 1)) expt-loop (test (op =) (reg counter) (const 0)) (branch (label expt-done)) (assign counter (op -) (reg counter) (const 1)) (assign product (op *) (reg b) (reg product)) (goto (label expt-loop)) expt-done) )) (set-register-contents! expt-b b 2) (set-register-contents! expt-b n 6) ;;gosh (start expt-b) ;;done ;;gosh (get-register-contents expt-b product) ;;64 Exercise 5.14 (define n! (make-machine (continue n val) (list (list = =) (list - -) (list * *)) (machine (assign continue (label fact-done)) ; set up final return address fact-loop (test (op =) (reg n) (const 1)) (branch (label base-case)) ;; Set up for the recursive call by saving n and continue. ;; Set up continue so that the computation will continue ;; at after-fact when the subroutine returns. (save continue) (save n) (assign n (op -) (reg n) (const 1)) (assign continue (label after-fact)) (goto (label fact-loop)) after-fact (restore n) (restore continue) (assign val (op *) (reg n) (reg val)) ; val now contains n(n - 1)! (goto (reg continue)) ; return to caller base-case (assign val (const 1)) ; base case 1! = 1 (goto (reg continue)) ; return to caller fact-done) )) (define (ex5.14 num) (define (iter c) (if ( c num) done (begin ((n! stack) initialize) (set-register-contents! n! n c) (start n!) (format #t "n ~2d n! ~8d" c (get-register-contents n! val)) (display " ") ((n! stack) print-statistics) (iter (+ c 1))))) (iter 1)) ;;gosh (ex5.14 10) ;;n 1 n! 1 (total-pushes = 0 maximum-depth = 0) ;;n 2 n! 2 (total-pushes = 2 maximum-depth = 2) ;;n 3 n! 6 (total-pushes = 4 maximum-depth = 4) ;;n 4 n! 24 (total-pushes = 6 maximum-depth = 6) ;;n 5 n! 120 (total-pushes = 8 maximum-depth = 8) ;;n 6 n! 720 (total-pushes = 10 maximum-depth = 10) ;;n 7 n! 5040 (total-pushes = 12 maximum-depth = 12) ;;n 8 n! 40320 (total-pushes = 14 maximum-depth = 14) ;;n 9 n! 362880 (total-pushes = 16 maximum-depth = 16) ;;n 10 n! 3628800 (total-pushes = 18 maximum-depth = 18) ;;done Exercise 5.15 ;;; make-new-machine に追加 ;;ローカル変数追加 (instruction-counter 0) ;;内部定義手続き execute の末尾再帰の前に追加 (set! instruction-counter (+ instruction-counter 1)) ;;内部定義手続き追加 (define (inst-count) (let ((cnt instruction-counter)) (set! instruction-counter 0) cnt)) ;;メッセージ受付追加 ((eq? message instruction-count) (inst-count)) ;;; test program (define icnt (make-machine (n) (list (list = =) (list - -)) (machine loop (test (op =) (reg n) (const 1)) (branch (label loop-end)) (assign n (op -) (reg n) (const 1)) (goto (label loop)) loop-end) )) (define (ex5.15 num) (define (iter c) (if ( c num) done (begin (set-register-contents! icnt n c) (start icnt) (format #t "n ~d instruction-count ~d~%" c (icnt instruction-count)) (iter (+ c 1))))) (iter 1)) ;;gosh (ex5.15 5) ;;n 1 instruction-count 2 ;;n 2 instruction-count 6 ;;n 3 instruction-count 10 ;;n 4 instruction-count 14 ;;n 5 instruction-count 18 ;;done Exercise 5.16 ;;; (trace machine on/ off) ;;; make-new-machine に追加 ;;ローカル変数追加 (trace off) ;;内部定義手続き execute の instruction の実行の前に追加 (if (eq? trace on) (trace-out (car insts))) ;;メッセージ受付追加 ((eq? message trace) (lambda (mode) (set! trace mode))) ;;; コマンドとトレース出力追加 (define (trace machine mode) (if (or (eq? mode on) (eq? mode off)) ((machine trace) mode) (else (error "Mode must be on/ off" mode)))) (define (trace-out inst) (format #t "trace ~s~%" (instruction-text inst))) ;;; test program (define icnt (make-machine (n) (list (list = =) (list - -)) (loop (test (op =) (reg n) (const 1)) (branch (label loop-end)) (assign n (op -) (reg n) (const 1)) (goto (label loop)) loop-end) )) (define (ex5.16) (set-register-contents! icnt n 1) (start icnt) (format #t "n 1 instruction-count ~d~%" (icnt instruction-count)) ; (trace icnt on) (set-register-contents! icnt n 2) (start icnt) (format #t "n 2 instruction-count ~d~%" (icnt instruction-count)) ; (trace icnt off) (set-register-contents! icnt n 3) (start icnt) (format #t "n 3 instruction-count ~d~%" (icnt instruction-count)) ) ;;gosh (ex5.16) ;;n 1 instruction-count 2 ;;trace (test (op =) (reg n) (const 1)) ;;trace (branch (label loop-end)) ;;trace (assign n (op -) (reg n) (const 1)) ;;trace (goto (label loop)) ;;trace (test (op =) (reg n) (const 1)) ;;trace (branch (label loop-end)) ;;n 2 instruction-count 6 ;;n 3 instruction-count 10 ;;# undef Exercise 5.17 ;;; label 出力のため inst に label 情報を含める。 ;;; inst を ((text . proc) label-name1 ...) の形式にし、、 ;;; make-instruction, instruction-text, instruction-execution-proc, ;;; set-instruction-execution-proc!, make-label-entry を変更, ;;; instruction-labels を追加する。 (define (make-instruction text) (cons (cons text ()) ())) (define (instruction-text inst) (caar inst)) (define (instruction-execution-proc inst) (cdar inst)) (define (instruction-labels inst) (cdr inst)) (define (set-instruction-execution-proc! inst proc) (set-cdr! (car inst) proc)) (define (make-label-entry label-name insts) (let ((lentry (cons label-name insts))) (if (and (not (null? insts)) (not (eq? label-name **main**))) (set-cdr! (car insts) (cons label-name (instruction-labels (car insts))))) lentry)) ;;; 5.16 で作成した trace-out を変更する。 (define (trace-out inst) (if (not (null? (instruction-labels inst))) (for-each (lambda (x) (format #t "trace ~s~%" x)) (instruction-labels inst))) (format #t "trace ~s~%" (instruction-text inst))) ;;; test program (define expt-a (make-machine (continue n b val) (list (list = =) (list - -) (list * *)) (machine (assign continue (label expt-done)) expt-loop (test (op =) (reg n) (const 0)) (branch (label immediate-answer)) (save continue) (assign continue (label afterexpt)) (assign n (op -) (reg n) (const 1)) (goto (label expt-loop)) afterexpt (restore continue) (assign val (op *) (reg b) (reg val)) (goto (reg continue)) immediate-answer (assign val (const 1)) (goto (reg continue)) expt-done) )) (trace expt-a on) (set-register-contents! expt-a b 2) (set-register-contents! expt-a n 2) ;;gosh (start expt-a) ;;trace machine ;;trace (assign continue (label expt-done)) ;;trace expt-loop ;;trace (test (op =) (reg n) (const 0)) ;;trace (branch (label immediate-answer)) ;;trace (save continue) ;;trace (assign continue (label afterexpt)) ;;trace (assign n (op -) (reg n) (const 1)) ;;trace (goto (label expt-loop)) ;;trace expt-loop ;;trace (test (op =) (reg n) (const 0)) ;;trace (branch (label immediate-answer)) ;;trace (save continue) ;;trace (assign continue (label afterexpt)) ;;trace (assign n (op -) (reg n) (const 1)) ;;trace (goto (label expt-loop)) ;;trace expt-loop ;;trace (test (op =) (reg n) (const 0)) ;;trace (branch (label immediate-answer)) ;;trace immediate-answer ;;trace (assign val (const 1)) ;;trace (goto (reg continue)) ;;trace afterexpt ;;trace (restore continue) ;;trace (assign val (op *) (reg b) (reg val)) ;;trace (goto (reg continue)) ;;trace afterexpt ;;trace (restore continue) ;;trace (assign val (op *) (reg b) (reg val)) ;;trace (goto (reg continue)) ;;done Exercise 5.18 ;;; (register-trace machine regisetr-name on/ off) ;;; make-register の引数 name はこのために用意されていたのか? ;;; make-register 変更 (define (make-register name) (let ((contents *unassigned*) (stack (make-stack)) (trace off)) (define (dispatch message) (cond ((eq? message get) contents) ((eq? message set) (lambda (value) (if (eq? trace on) (format #t "reg [~s] ~s- ~s~%" name contents value)) (set! contents value))) ((eq? message pop) (stack pop)) ((eq? message push) (stack push)) ((eq? message initialize) (stack initialize)) ((eq? message trace) (lambda (mode) (set! trace mode))) (else error "Unknown request -- REGISTER" message))) dispatch)) ;;; 新規 (define (set-register-trace-mode! register mode) (if (or (eq? mode on) (eq? mode off)) ((register trace) mode) (else (error "Mode must be on/ off" mode)))) (define (register-trace machine register-name mode) (set-register-trace-mode! (get-register machine register-name) mode)) ;;; test program (define expt-a (make-machine (continue n b val) (list (list = =) (list - -) (list * *)) (machine (assign continue (label expt-done)) expt-loop (test (op =) (reg n) (const 0)) (branch (label immediate-answer)) (save continue) (assign continue (label afterexpt)) (assign n (op -) (reg n) (const 1)) (goto (label expt-loop)) afterexpt (restore continue) (assign val (op *) (reg b) (reg val)) (goto (reg continue)) immediate-answer (assign val (const 1)) (goto (reg continue)) expt-done) )) (set-register-contents! expt-a b 2) (set-register-contents! expt-a n 2) ;;gosh (register-trace expt-a val on) ;;on ;;gosh (register-trace expt-a n on) ;;on ;;gosh (start expt-a) ;;reg [n] 2- 1 ;;reg [n] 1- 0 ;;reg [val] *unassigned*- 1 ;;reg [val] 1- 2 ;;reg [val] 2- 4 ;;done ;;gosh (register-trace expt-a n off) ;;off ;;gosh (set-register-contents! expt-a n 2) ;;done ;;gosh (start expt-a) ;;reg [val] 4- 1 ;;reg [val] 1- 2 ;;reg [val] 2- 4 ;;done Exercise 5.19 ;;; n の解釈を、問題で指定されている方法とは変えて、ブレークポイントは ;;; n番目のインストラクションを実行した後に(内部的には n+1 番目の ;;; インストラクションを実行する前に)働くようにする。 ;;; 従って、label直後のインストラクションを実行する前にブレークポイント ;;; を働かせるためには、 ;;; (set-breakpoint machine label ) ;;; とする。 ;;; label n は ex5.10 の形式を使用する。 ;;; inst は ex5.17 の((text . proc) label-name1 ...) の形式を使用する。 ;;; breakpointの設定は、上記の proc を breakpoint 処理を行う手続き(make-bp ;;; が返す手続き)に、トレースが出力されないよう text を breakに変更する。 ;;; make-new-machine の内部手続き execute を instruction から break が返ると ;;; loop が終了するよう変更する。 (define (execute) (let ((insts (get-contents pc))) (if (null? insts) done (begin (if (eq? trace on) (trace-out (car insts))) (if (not (eq? make-bp ((instruction-execution-proc (car insts))))) (begin (set! instruction-counter (+ instruction-counter 1)) (execute)) ))))) ;;; make-new-machine の message に proceed 用を追加する。 ((eq? message execute) (execute)) ;;; inst 変更用の手続きを追加する。 (define (set-instruction-text! inst text) (set-car! (car inst) text)) ;;; breakpoint が設定されている時はトレースを抑制する。 (define (trace-out inst) (if (not (eq? (instruction-text inst) break)) (begin (if (not (null? (instruction-labels inst))) (for-each (lambda (x) (format #t "trace ~s~%" x)) (instruction-labels inst))) (format #t "trace ~s~%" (instruction-text inst))))) ;;; 設定されている breakpoint を (inst1 inst2 ...) の形で保持 (define breakpoint-list ()) ;;; breakpoint 設定 (define (set-breakpoint machine . label-exp) (let ((tis (machine insts)) (name (label-name label-exp)) (offset (label-offset label-exp))) (let ((insts (lookup-label-tis tis name offset))) (let ((val (memq (car insts) breakpoint-list))) (if (not val) (begin (make-bp (car insts) name offset) (set! breakpoint-list (cons (car insts) breakpoint-list)) (instruction-text (car insts))) (warn "already set breakpoint " label-exp)) )))) ;;; breakpoint 停止後の再開。再開instructionの変更は未実装。 (define (proceed-machine machine . label-exp) (if (eq? label-exp ()) (let ((insts (get-register-contents machine pc))) (let ((val (memq (car insts) breakpoint-list))) (if val (begin ((instruction-execution-proc (car insts)) proceed) (machine execute) ) (error "Internal error -- PROCEED")))) (begin ) )) ;;; breakpoint 解除 (define (cancel-breakpoint machine . label-exp) (if (eq? label-exp ()) (begin ;all (for-each (lambda (inst) (if (not (eq? inst ())) ((instruction-execution-proc inst) cancel))) breakpoint-list) (set! breakpoint-list ()) done) (begin ;the (let ((tis (machine insts)) (name (label-name label-exp)) (offset (label-offset label-exp))) (let ((insts (lookup-label-tis tis name offset))) (let ((val (memq (car insts) breakpoint-list))) (if val (begin ((instruction-execution-proc (car isnts)) cancel) (set-car! val ()) ok) (warn "not set breakpoint " label-exp)) )))))) ;;; breakpoint (define (make-bp inst label offset) (let ((proc (instruction-execution-proc inst)) ; save proc (text (instruction-text inst)) ; save text (flag break)) ; break on (set-instruction-text! inst break) ; trace抑制 (set-instruction-execution-proc! inst (lambda arg (if (null? arg) ;; run-time (cond ((eq? flag break) (format #t "break! ~s ~s~%" label offset) make-bp) ((eq? flag proceed) (set-instruction-text! inst break) (set! flag break) (proc)) (else (error "Undefined Breakflag " flag))) ;; command (cond ((eq? (car arg) proceed) (set-instruction-text! inst text) (set! flag proceed)) ((eq? (car arg) cancel) (set-instruction-execution-proc! inst proc)) (else (error "Undefined Breakflag " arg)))))))) ;;; ラベルとオフセットから insts を得る。 (define (lookup-label-tis tis name offset) (define (forward insts n) (if (= n 0) insts (if (null? (cdr insts)) (error "Out of range -- BREAKPOINT" (list name offset)) (forward (cdr insts) (- n 1))))) (define (forward2 insts lead target) (if (eq? lead target) insts (if (null? (cdr lead)) (error "Out of range -- BREAKPOINT" (list name offset)) (forward2 (cdr insts) (cdr lead) target)))) (let ((insts (find-tail (lambda (inst) (and (not (null? (instruction-labels inst))) (memq name (instruction-labels inst)))) tis))) (if (not insts) (error "Undefined label -- BREAKPOINT" name)) (if ( = offset 0) (forward insts offset) (forward2 tis (forward tis (* offset -1)) insts)))) ;;; test program (define ex5.19 (make-machine (continue) (list (list format format)) (machine (assign continue (label t1e)) (goto (label s -3)) t1e (assign continue (label t2e)) (goto (label s -1)) t2e (assign continue (label t3e)) (goto (label s 1)) t3e (goto (label ex5.19.done)) ;; (perform (op format) (const #t) (const "stop s -2~%")) (goto (reg continue)) (perform (op format) (const #t) (const "stop s~%")) s (goto (reg continue)) (perform (op format) (const #t) (const "stop s 2~%")) (goto (reg continue)) ;; ex5.19.done) )) ;;gosh (bp! s -2) ; (set-breakpoint machine label n ) の短縮形 ;;break ;;gosh (bp! s) ;;break ;;gosh (bp! s 2) ;;break ;;gosh (start ex5.19) ;;stop s -2 ;;break! s -2 ;;gosh (go) ; (proceed-machine machine ) の短縮形 ;;stop s ;;break! s 0 ;;gosh (go) ;;stop s 2 ;;break! s 2 ;;gosh (cbp!) ; (cancel-all-breakpoints machine ) の短縮形 ;;done ;;gosh (start ex5.19) ;;stop s -2 ;;stop s ;;stop s 2 ;;done
https://w.atwiki.jp/mandemoari/pages/298.html
File 31 http //hissi.org/read.php/news/20081119/V3Q5aFFSVmU.html 【首都圏マンション大暴落】貧乏人がギリギリの金で買ってたような物件が1000-2000万円値引き状態 754 : しゅんぎく(アラバマ州)[]:2008/11/19(水) 01 21 01.51 ID Wt9hQRVe 750 おまえの理屈じゃジョン・レノンも高層長屋民として死んだわけだ 面白い解釈だよね 厚生事務次官OBや家族の相次ぐ殺傷事件、元厚生省幹部への連続テロの可能性★4 122 : しゅんぎく(アラバマ州)[]:2008/11/19(水) 01 34 11.24 ID Wt9hQRVe ついにテロルの季節 俺は犯人を責めたりはしない 厚生族議員も気をつけたほうがいい 2ちゃんねる元副管理人「厚生次官連続殺傷事件を見て喜んでる連中の気が知れない」 66 : しゅんぎく(アラバマ州)[]:2008/11/19(水) 01 37 06.74 ID Wt9hQRVe 切り込みの馬鹿まだいたんだ 厚生事務次官OBや家族の相次ぐ殺傷事件、元厚生省幹部への連続テロの可能性★4 132 : しゅんぎく(アラバマ州)[]:2008/11/19(水) 01 39 12.04 ID Wt9hQRVe 何にせよ暴力革命を経てこそ本当の民主主義は生まれる 新入社員で有給休暇取る奴って頭おかしいんじゃないの? 338 : しゅんぎく(アラバマ州)[]:2008/11/19(水) 01 41 04.85 ID Wt9hQRVe 毎月1日か2日体調不良で有休使ってる さすがに自分でも病弱すぎ自重しろと思うが仕方ない 342 : しゅんぎく(アラバマ州)[]:2008/11/19(水) 01 47 24.08 ID Wt9hQRVe 340 今月は残業40h−有休2日分(16h)=24hでマイナスではないから許してくれ 先月は残業70h−有休1日分( 8h)=62hでマイナスではないから許してくれ てか、有休とって休みの日に出たほうが圧倒的に儲かる 使わないやつは10万単位で損してるはず テキストエディタ使えよ 色々と捗るぞ 178 : しゅんぎく(アラバマ州)[]:2008/11/19(水) 01 51 10.21 ID Wt9hQRVe 秀丸もう10年以上使ってるなあ あとvi、vimってのはviよりいいのかい? 厚生事務次官OBや家族の相次ぐ殺傷事件、元厚生省幹部への連続テロの可能性★4 153 : しゅんぎく(アラバマ州)[]:2008/11/19(水) 01 53 15.98 ID Wt9hQRVe 152 連鎖蜂起デスカ? 新入社員で有給休暇取る奴って頭おかしいんじゃないの? 352 : しゅんぎく(アラバマ州)[]:2008/11/19(水) 02 01 25.55 ID Wt9hQRVe 351 ハア?仰ってる意味が分からないのでもう少し平易な文章でお願いできますでしょうか? http //hissi.org/read.php/news/20081121/QzZHbzU0WFY.html 厚生事務次官「40年間収めた年金がミスで貰えなくなった程度で国民が役人に刃向けるのは許されない事」 810 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 00 26 24.91 ID C6Go54XV 803 ほんとにね。愚民というかなんというか 816 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 00 29 27.92 ID C6Go54XV 813 逆だよ。官僚は国民のちんけな額の税金で雇われてやって 大半の利益になるように仕事してやってるんだよ。履き違えてはいけない。 832 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 00 33 01.37 ID C6Go54XV もしおまえらみたいな馬鹿が年金に関わってたら もっと酷いことになってたかもわからないのにな 839 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 00 35 29.13 ID C6Go54XV 833 は?こんな国は嫌だってんなら変えるための努力しろよ 公務員にでも官僚にでもなって変えてみろよ。 【ショック】 福原愛・錦織圭「指をからませ超密着愛」現場−堂々のショッピング&カフェ 868 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 00 39 30.29 ID C6Go54XV 誰に似てるかわかった。とくだねの佐々木恭子だ 厚生事務次官「40年間収めた年金がミスで貰えなくなった程度で国民が役人に刃向けるのは許されない事」 866 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 00 44 16.50 ID C6Go54XV 857 日本にそこまで追い詰められてるやつなんていねーよ もしいたとしてもよほどの馬鹿な生き方したやつだけだそれは自己責任だろ 875 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 00 47 20.84 ID C6Go54XV 869 おまえは変なやつに逆恨みされて、ストーキング被害にあったり 刃物で切りつけられたりしても怯えないのですか 894 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 00 53 22.09 ID C6Go54XV 874 そういう短絡的思考で生きてるから底辺ネトウヨになるんだろうな 924 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 01 00 41.55 ID C6Go54XV だからさ。そんなに不満があるなら勉強して官僚なって変えろって話ですし おまえが無理なら子供に夢を託してもいいですし できないのにこういうときだけ威勢よくなるとか(苦笑) 975 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 01 15 04.62 ID C6Go54XV 946 やってもみないでわかりませんし まあどうせここで虚勢はってるネトウヨに官僚なんて土台無理ですけどね 自分の低脳さを棚にあげて一方的に2chで叩いてガス抜きとかほんとすごいと思いますし 994 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 01 18 34.93 ID C6Go54XV 992 これからじゃないか 事務次官「40年間収めた年金がミスで貰えなくなった程度で国民が役人に刃向けるのは許されない事」★2 29 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 01 30 44.82 ID C6Go54XV ていうか国民年金もらえないだけで死ぬ人ってほんとにいるの? どういう人なのか想像できない 45 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 01 40 21.87 ID C6Go54XV ほとんどの人が厚生年金もらえるし 別に国民年金もらえる額が少なくなっても・・・ 51 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 01 42 22.62 ID C6Go54XV 48 それでも試験に落ちるだろwwwwwwwwwwwwwwwwwwww 53 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 01 43 25.28 ID C6Go54XV 49 はなから税金みたいなもんですし それにまったく貰えないってわけでもないですし 102 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 02 08 11.60 ID C6Go54XV 95 貧富のさなんてないから。マスコミに煽られすぎ 109 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 02 12 34.39 ID C6Go54XV 105 いやいやネカフェ難民とか年収200万以下とかそんなやついないだろ 143 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 02 23 42.73 ID C6Go54XV 140 ここは日本ですし^^; 570 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 12 38 25.90 ID C6Go54XV お上のやることに間違いはないし、もしあったとしてもそれは最善を尽くした結果 愚民がいくら不満を抱こうがテロしようが変わらないし変えられない 574 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 12 54 01.07 ID C6Go54XV こういう自分が被害者になる場合に限ってはあれだけ日ごろ批判している テレビを全面的に信用して、加害者だといわれる組織や個人を際限なく叩きに叩く その結果、取り返しのつかない事態になってもまだ気づかずに やれ祭りだわっしょいわっしょいと騒ぎ立てる。いわゆる愚民ですね。 576 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 12 56 57.95 ID C6Go54XV 575 今の日本でワープアになるなんて、よほどの失敗を繰り返さないとならないわけだが それをさておいて、政治や官僚のせいにしてる馬鹿に こんな事件を起こすだけのエネルギーも頭もあるわけがない^^; 582 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 13 02 21.79 ID C6Go54XV 579 誰かさんの思惑通りなのは格差や汚職ってエサに釣られて 官僚や政治家を叩いて悦に入ってるようなやつだろ^^ ショタ女教師(27)、14歳少年にトップレス写真を送りつけ(;´Д`)ハァハァし逮捕 84 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 13 03 13.55 ID C6Go54XV 82 だいぶマシになったけどそれでも無理だな 涼宮ハルヒのフィギュアがエロい 260 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 14 19 28.79 ID C6Go54XV 240 最高じゃねーか 現代のブラックジャック、30年間人を助け続けるも逮捕される 7 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 16 13 18.86 ID C6Go54XV 今までばれなかったってことは 治療に間違いは無かったってことか 【昇竜拳】韓国ウォン1$=1500↑【線香消える】 915 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 16 17 20.31 ID C6Go54XV このまま崩壊すれば北朝鮮と融和しやすくなるね! 現代のブラックジャック、30年間人を助け続けるも逮捕される 21 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 16 18 23.80 ID C6Go54XV 9 といいつつお年寄りに人気 まさにブラックジャック 勝谷誠彦 「厚生次官殺害事件の元凶は自民党。だから民主党に政権を譲れカス」 135 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 19 17 29.19 ID C6Go54XV もう官僚はどっちに転んでもいいように手はずつけてるだろ 政権交代してもしなくてもどうにもならないんじゃないの IMFに10兆円拠出してもコケにされ続ける、日本外交のいつもの敗北 159 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 19 37 45.25 ID C6Go54XV あんまり日本をいじめすぎてたから 復讐されそうで怖いんだろうな他国の人は 国連「死刑YA☆ME☆RO」 日本「国内世論には勝てませんからw」 249 : マイワシ(アラバマ州)[sage]:2008/11/21(金) 19 51 43.63 ID C6Go54XV フランスみたいな軍事国家がなんでそんあ必死になって死刑に反対するんだよwwwwwwww http //hissi.org/read.php/news/20100724/RmVaUlNvcHc.html 中田宏が参院選出てたの知ってた? 81 : ファッションデザイナー(アラバマ州)[]:2010/07/24(土) 23 01 34.35 ID FeZRSopw ゴミ分別は、分別するという習慣を身につけるためにやってもらってます。 燃やす時は全部一緒に燃やしますけどね。 可愛い奥様 98 : ファッションデザイナー(アラバマ州)[]:2010/07/24(土) 23 08 53.15 ID FeZRSopw 【冤罪】「セカンドレイプ」で言論弾圧【フェミ】 http //love6.2ch.net/test/read.cgi/gender/1244640665/
https://w.atwiki.jp/oboegakiwiki/pages/6.html
アーカイブ @wikiのwikiモードでは #archive_log() と入力することで、特定のウェブページを保存しておくことができます。 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/25_171_ja.html たとえば、#archive_log()と入力すると以下のように表示されます。 保存したいURLとサイト名を入力して"アーカイブログ"をクリックしてみよう 保管 Xyzzy - Wikipedia (2007-12-17 01 26 01) サイト名 URL
https://w.atwiki.jp/jeskolabuzz/pages/99.html
Filter 音を削り出すためのEffect。 2 Pole Variable Keytrack Exotic Color Series asedev a4pFilter04? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Cheapo Filters? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 CyanPhase BFilter? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Elak SVF? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 FSM Philta? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Fuzzpilz Multibandit? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Glow Sidfilter? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 HD Fly Filter? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 HD Mod-X_1? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 HD MyFilterS? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 HD Out Space Filter? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Joachims Temperature? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Joachims Tethys? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Dex Filta 2? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Static Duafilt II? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 WhiteNoise s Filtron? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 WhiteNoise s HiFiltron? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Geonik s Resonator? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Ld Chainfilter? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Zephod Enveloper? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。 Zephod MoogFiltah? 入手 ? プリセット ? ヘルプ ? ソースコード ? ステレオ? 記事求む。
https://w.atwiki.jp/suffix/pages/1536.html
ソースからrpmパッケージを作成する specファイルを一から作る方法もあるが、 rpmbuildやcheckinstall,fpmを使うと楽。 ミドルウェア群のソースをfpmを使ってパッケージ化する場合は、 下記のようになる。 $ tar xzvf 等でソースコードを展開する $ cd ソースコードのフォルダ $ ./configure $ make $ mkdir ../パッケージ作成用ディレクトリ $ sudo make install DESTDIR=作成したパッケージ作成用ディレクトリ $ fps -s dir -t rpm -n 名前 -v バージョン -C 絶対パスで作成したパッケージ作成用ディレクトリ -p xxx.rpm . インストールする時は $ rpm -ivh xxx.rpm ソースからdebパッケージを作成する 以下4つのファイルを一から作る方法もあるが、 こちらもcheckinstall等を使うと楽。 control:パッケージ全体情報 changelog:変更履歴。deb -i --createやdebchange --createで生成。 rules:パッケージ作成方法(いわゆるmakefile) copyright:著作権表示 ミドルウェア群のソースをcheckinstallを使ってパッケージ化する場合は、 下記のようになる。 $ tar xzvf 等でソースコードを展開する $ cd ソースコードのフォルダ $ ./configure $ make $ mkdir ../パッケージ作成用ディレクトリ $ sudo checkinstall --install=no インストールする時は $ sudo dpkg -i xxx.rpm ■参考 http //note.kurodigi.com/debpackage/ https //qiita.com/kiida/items/62a86db073feaa2660da http //mimumimu.net/blog/2014/05/12/
https://w.atwiki.jp/huta_love/pages/15.html
ふたなり娘が登場する同人ゲーム あ A cherry-blossom front ふたなり女子校生性春淫行白書 蒼井亭 猫耳、尻尾、翼付き アイビスの憂鬱 囚われナオちゃん完結編 宇宙刑事セレス FUTANARI FANTASY XX 囚われナオちゃん 調教編 Aconite 淫夢街 ~女勇者魔姦クエスト~ あっぷるみんと ウィンターテイル ~白の狂愛 黒の淫辱~ Artesneit 邪神学園戦記ペルマス 亜龍工房 ふたなりドラゴ◯◯エスト 旅立ち篇 ふたなりドラゴ〇〇エストp2 旅情編 ふたなりドラゴ〇〇エストp3 決戦編 ふたなりイメクラ すとれんじ・キッスへようこそ!! ふたなりイメクラ すとれんじ・キッスへようこそ!! -2也- 壱目堂 魔女テスタロッサ ウィルテイム 人妻戦士シルヴィス 淫夜一夜 其之弐 LADY CANDY うさぎとかめ おおそうりょよ! しんでしまうとは情けない! EGOKRAFT 科学部部長(※薬でちっちゃくなった)八神紗英~オトナになるための実験レポート~ Eilis 機甲魔装少女ミヅキ -囚われの電脳少女- elle-叢神 ふたなり復讐陵辱記~高飛車お嬢様に生やして脅せ~ ふたなり少女禁猟区 ~異常性欲監禁学園~ エロエ 逆転!武塞学園~女体化副番長~ EROQUIS!【えろっきーず】 淫獣艦獄 か かぐら堂 ふたなりあそび 牛乳ソフト ふたなりっこ調教計画 ふたなり遊戯~禁断の輪舞曲~ ふたなりっこ調教計画~if~ Crystal Soft Virgin Angel ※ PC-98 くりてぃかるハート みすずちんちん くれいじぃ どりーむ えっちなメイドさんはお嬢様とふたなり クレージュエース 触手少女 断罪のエルミア Crepe 戦巫女あかり~悪鬼妊娠凌辱の宴~ 闘魔忍伝 ハルナとマヤ~淫触蟲に、くノ一堕つ~ 囚われ姫 このわたくしが…こんな触手で絶頂なんて!~触手びしょ濡れ高慢JK・杏珠~ ぐりぽん ゆえしあ KI-SofTWarE 黒夜神~堕ち逝く肉奴隷達の散華~ CrossinG KnighTMarE ~穢れ逝く聖女達への讃歌~ 言葉遊戯 戦国の黒百合~ふたなり姫と隷属の少女~ 戦国の黒百合~ふたなり姫と敵国の姫君~ こどものこえ 放課後まいひめクラブ~乙女の休日~ 放課後まいひめクラブ2 ~乙女の日常~ 黒色槍騎兵 はにわり!沙耶華お嬢様~感染する股間の大きなモノ~ 堕落皇女~魔術師の罠に嵌った聖女~ さ サークルZIP Purism×Egoist ※ とらのあな専売ソフト サークルみるーじゅ ふたなりっ娘のドキドキ淫語オナニーONE☆Days! 式部 変身 G-work@ミ 白淫天使 堕淫悪魔 JET ENGINE DEMONCAGE ShiningStar 百合の花幻想奇譚 ~永久の愛を君に誓う~ ドラたま! 幼竜ライラの成長日記 studio砂時計 ようこそ♪珍珠荘 ようこそ♪珍珠荘 2号室 ようこそ♪珍珠荘 柚乃の欲情だいありー 7th Door 聖騎士ルイ 陰陽師 綾 Software circle Mercure 催眠牝奴隷騎士ソフィア ~レズ騎士団長、催眠調教に堕ちる~ 皇女姦落 ~高貴な乙女は目覚めない辱夢を見るか?~ ソフトさーくるクレージュ DISCODE-2 二律背反 MATERIAL 秘密のカンケイ-渚と桜- May Queen ~小鳥 Afterwards 架空の境界 -hallcination- This will Never End ソフトサークルパルテノン 純潔のソフィア~闇の精液を清純なるエルフの膣穴に~ た 朕ソフト 淫辱ノ禍実 姫調教 ディーゼルマイン The 3 Days ~15人連続レイプ~ 精液大量注入!~オレの子種は媚薬入り~ もっと!精液大量注入! ティンクルベル ティンクルベル★カジノパラダイス ~私の恋人は女の子~ 輪舞曲◆ぷにゅぷり女子高編◆ 闇夜ト星ノ冥土館 ◆ぷにゅぷりXX◆ 少女魔法学園おしゃべりカードゲーム D-リング 淫乱天使フタナリエンジェル デジぱれぶらんど ふたなりオフィス 公衆便所前! 天使蹂躙~SLAVED ANGEL~ おっぱい天使 翠憐 でふつ屋 変貌の晩餐 ダブルエッセンス ベスティエワルツ Trick A’ 快楽☆なんでもショッピング 土鍋屋 フタナリ戦士アンドロセイバー Dopamine Acmeholic Drop Project 爆乳ポリス 地下室の奇跡 ~肉体覚醒~ 爆乳 潜入捜査官 ~本能への肉欲狂奏曲~ トリニトロンCG こちら女々月温泉郷 な なにかもどき 魔女の鎖 二次元の笛吹き so-on ふたなりカルテット ふたなりSOS ふたなりっ娘協翼カリキュラム ふたなりっ娘協翼クリエイション ねくろのみこん 孕みっ娘~妊娠させちゃえ♪~ は ハースニール 朝からずっしりミルクポット 信じて送り出したフタナリ彼女が農家の叔父さんの変態調教にドハマリしてアヘ顔ピースビデオレターを送って くるなんて…… 略称 フタレター 朝からずっしり★ミルクポット2リットル 朝からずっしり★ミルクポット SPECIAL ~街中で隠れセンズリに夢中になっちゃうふたなりっ娘スニーキングアクションゲーム~ HighSpirit 秘蜜のバラエティBOX バニラ堂MAX ふた☆まほ~ふたなり魔砲少女物語~ パルテノンzero 紅蓮の守護天使ファルナ-淫獣の刻印- Tentacle Master ~狂欲の支配者セブン~ 紅炎の守護騎士キシャル 百人壱護.jp Czarine.-巨乳ふたなり汁- EarlGrey.-ナース快楽調教- French Connection.~ 淫乱女連続性交 ~ Guatemala.~女性器拡張遊戯~ ひよこ番長 搾って!ふたみるく メイドになったボク 吸精の檻 マゾラヴ Piston Rod Men 双花~ふたはな~ Piccalilli(ピッカリリ) 尿はペニスカント~カ○ネ・フタナリ下着女の放尿地獄~ ぴちぴち画廊R 肉奴隷契約書~女医奴隷調教~ 牝肉の獣欲恥態 Ri○ de 肉蝕の奴隷玩具 PureCruel 苺過汁 PINKISH ATION HHHT~放課後ふたなりエッチタイム!~ ピンポイント 異常痴態 ~彼女は僕の実験奴隷~ ピンポイント / キングピン ツンデレ淫乱少女すくみ~カラッポになるまで許さないからねっ~ Fake gate Succubus Magic 重月堂 HEAVY MOON 紅幻華 WhiteMoor MY SWEET SHADOW POTATO HOUSE Neutral angel ポンヨリ伝説 仮面の告白 仮面の告白Case3「真咲」 ふたなり魔女っコぷちみぃたん 姫騎士壊妊~子宮征服計画~ ま Magical☆Girl 凌辱審判 魔法少女すみれ&デイジー ~囚われた聖少女~ 魔蟲使いクラエス ~蟲たちに見初められた少女~ 人造魔法少女ワッフル ~ペットのようにしつけられて~ 純聖天使プリミティ☆ノエル ~恥辱に堕ちた少女~ 純聖天使プリミティ☆ミエル ~闇に魅入られたツインエンジェル~ グリモワール ~淫虐の魔道書に溺れる百合姉妹~ 純聖天使・調教飼育 ~魔悦に染め上げられる生贄の少女たち~ 純聖天使プリミティ☆シエル~セカイと共に堕ちる少女たち~ 美甘堂 鬼畜神官の館~囚の女賢者編 ド○クエ3 MARCHEN+ 博士と助手と××× 木琴Soft 姉と小町♂ ~巨乳姉妹の女装っ娘いじり~ 宇宙海賊カグラ 天使のミルクタンク ~ふたなりLLセット~ や やせうまロール ほばるImpression 辱めての通信販売ⅡSEXPACK てるてぃる堕天使 前編 てるてぃる堕天使 後編 理狂人 破滅への淫ターンシップ やまガラス ご奉仕シスター!ソフィ パティ ら 来夢緑 「そらねこ」ぼく、女の子になっちゃった―入学編― 「そらねこ」ぼく、女の子になっちゃった―夜会編― Lilies Project 彼女と彼女と私の七日 -Seven days with the Ghost- Rolling Star 魅惑の魔法陣~姫様×姫様 淫欲冒険録~ ゆーくりパニック 魅惑の魔法陣 わ 【WILD★COVERS】 【サキュ!!】 【Succu!!】日本編ぷらす VARIETA 妹のソーセージ 触姦 失禁病棟 ん んみゅ ないモノねだり~大正人形姫奇譚~ 雑誌のおまけゲーム TECH GIAN「ディアプリンセス 全18話」 1996年11月号-1998年4月号 TECH GIAN「忍花札百花繚乱 第13話」2001年10月号 TECH GIAN「麻雀群狼伝Hylandia 第10話」 2002年5月号 TECH GIAN「ポヨ=ナマステのアニメいかだ少年漂流記 第1回」 2004年10月号 TECH GIAN「沙夜曲 -Girls Meets Breserknight- 第2話」 2010年4月号 TECH GIAN「ギソウ=カノジョ」」 2012年予定
https://w.atwiki.jp/gtmpip/pages/11.html
GT.Mを2バイト(UTF-8)で動かす 資料 GT.M Support for the Unicode Standardを、良く読む。 ICU (International Components for Unicode) library IBMさんが作った、ユニコード用のライブラリWhile GT.M provides a framework for handling characters in Unicode™, it relies on the ICU (International Components for Unicode) library for language specific information. http //icu.sourceforge.net and http //www.ibm.com/software/globalization/icu/ /usr/local にインストール International Components for Unicode ICU 3.6 ReadMe ダウンロードDownload ICU 3.6 release icu4c-3_6-src.tgz 展開・configure・make・make install $ su - root # cd /usr/local/src # wget ftp //ftp.software.ibm.com/software/globalization/icu/3.6/icu4c-3_6-src.tgz # tar xzovf icu4c-3_6-src.tgz # cd /usr/local/src/icu/source # chmod +x runConfigureICU configure install-sh # ./runConfigureICU Linux # make # make install ICU4c-3.6 /usr/local の構成 bin derb genbrk gencnval genctd genrb icu-config makeconv pkgdata uconv sbin genccode gencmn gensprep genuca icupkg icuswap lib libicuio.so libiculx.so libicui18n.so libicuuc.so libicule.so libicudata.so libicutu.so libicuio.so include layout unicode ~ ~ ~
https://w.atwiki.jp/iwannabethewiki/pages/4670.html
製作者 Nihil DL先↓ http //www.mediafire.com/file/oiz579hg54cc2j8/Barrage_Maker.rar
https://w.atwiki.jp/bacon_egg/pages/26.html
/* Problem B Make Purse Light 制作時間 2010/4/24 17 01~2010/4/24 17 21 (20分) 作者 コリンク ID s7509413 [解き方] まず素直にincludeなどの定形文を書いた。 硬貨の種類が違っても同じような処理をするだろうから、配列による逐次処理が有効だろうと思った。 で、硬貨には枚数と価値があるから構造体がいいだろうと思った。 後はSAMPLE INPUTに合わせてインタフェースを作り、処理を記述した。 途中で使用する硬貨の枚数を記録する変数も欲しくなり、shiyouメンバを追加した。 難易度は低く感じた。 */ #include cstdio #defineKOUKA_SHURUI4 #defineKOUKA_KACHI{10, 50, 100, 500} struct kouka_t{ int maisu,/* 硬貨の枚数 */ kachi,/* 硬貨の価値 */ shiyou;/* 使用する硬貨の枚数 */ }; void setKoukaKachi(struct kouka_t *obj){/* 硬貨の価値を設定 */ int temp[] = KOUKA_KACHI, i; for(i = 0; i KOUKA_SHURUI; ++i){ obj[i].kachi = temp[i]; } return; } int main(int argc, char *argv[]){ int pay;/* 支払い代金 */ struct kouka_t kouka[KOUKA_SHURUI];/* 持っている硬貨 */ int i; int sum; bool flagLoopExit; setKoukaKachi(kouka);/* 硬貨の価値を設定 */ while(true){ scanf("%d", pay);/* 支払い代金入力 */ if(pay = 0 || pay % kouka[0].kachi != 0){ break; }/* 0で終了 */ for(i = 0; i KOUKA_SHURUI; ++i){ scanf("%d", kouka[i].maisu);/* 硬貨の枚数入力 */ kouka[i].shiyou = 0; } /* 価値が低い順から硬貨を追加し、合計を支払い代金以上とする。 */ sum = 0; flagLoopExit = false; for(i = 0; i KOUKA_SHURUI !flagLoopExit; ++i){ while(kouka[i].maisu 0){ sum += kouka[i].kachi; --kouka[i].maisu; ++kouka[i].shiyou; if(sum = pay){ flagLoopExit = true; break; } } if(flagLoopExit){ break; } } /* 結果表示 */ for(i = 0; i KOUKA_SHURUI; ++i){ if(kouka[i].shiyou){ printf("%d %d\n", kouka[i].kachi, kouka[i].shiyou); } } puts(""); } return 0; }
https://w.atwiki.jp/realbasket/pages/4.html
Tournament Mode Arcade Mode Time Attack Mode Single Ball Mode All-Stars Mode Block Mode